// Created by WXX on 2021/10/28 9:13
#include <iostream>
#include <vector>
#include <unordered_set>

using namespace std;

/**
 * 执行用时：12 ms, 在所有 C++ 提交中击败了38.17%的用户
 * 内存消耗：8.6 MB, 在所有 C++ 提交中击败了5.40%的用户
 */
class Solution {
public:
    bool reorderedPowerOf2(int n) {
        for (int i = 1; i <= 1e9; i *= 2)
            if (check(to_string(i), to_string(n)))
                return true;
        return false;
    }

    bool check(string a, string b) {
        unordered_multiset<int> s1, s2;
        for (auto c : a) s1.insert(c);
        for (auto c : b) s2.insert(c);
        return s1 == s2;
    }
};

int main() {

    cout << Solution().reorderedPowerOf2(46) << endl;  // true

    return 0;
}
